/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：ConnectNodeLocator.js<br>
 * 日期：2016年12月3日<br>
 * 作者: 王中山<br>
 * 功能：<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.ConnectNodeLocator<br>
 * 类型功能：器件盒子图元<br>
 * 接口函数：<br>
 */
Rainier.UI.V2.ConnectNodeLocator = draw2d.layout.locator.ConnectionLocator.extend({
	
	/**
	 * 函数名称：Rainier.UI.V2.ConnectNodeLocator.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：property<br>
	 * 异常信息：<br>
	 */
	init:function(){
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.ConnectNodeLocator<br>
	 * 函数功能：重新定位<br>
	 * 异常信息：<br>
	 */
    relocate: function(index, target){

        var conn = target.getParent();
        var points = conn.getVertices();
        
        var segmentIndex = Math.floor((points.getSize() -2) / 2);
        if (points.getSize() <= segmentIndex+1)
           return; 
     
        var p1 = points.get(segmentIndex);
        var p2 = points.get(segmentIndex + 1);

        var offsetX = parseInt(p2.x - p1.x);
        var offsetY = parseInt(p2.y - p1.y);

        var x = parseInt((offsetX / 2 + p1.x - target.getWidth()/2)|0) - parseInt((offsetY == 0)?0:5);
        var y = parseInt((offsetY / 2 + p1.y - target.getHeight()/2)|0) + parseInt((offsetX == 0)?0:8);
     
        target.setPosition(x,y);
    }
});
